#
# Copyright (c) 2017-2019 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

cmake_minimum_required(VERSION 3.1)

cmake_policy(SET CMP0048 NEW)

file(STRINGS "VERSION" version)

project(tencentcloud-sdk-cpp VERSION ${version})

message(STATUS "Project version: ${PROJECT_VERSION}")

set(TARGET_OUTPUT_NAME_PREFIX "tencentcloud-sdk-cpp-" CACHE STRING "The target's output name prefix")
option(BUILD_SHARED_LIBS  "Enable shared library" ON)
option(BUILD_FUNCTION_TESTS "Enable function test" OFF)

set(LIB_TYPE STATIC)
if(BUILD_SHARED_LIBS)
    set(LIB_TYPE SHARED)
endif()

set_property(GLOBAL
    PROPERTY
    USE_FOLDERS ON)

set(CMAKE_CXX_STANDARD 11)

# include(ExternalProject)
include(GNUInstallDirs)

if(BUILD_FUNCTION_TESTS)
    enable_testing()
    add_subdirectory(test/function_test/cvm)
    add_subdirectory(test/function_test/cbs)
endif()

add_subdirectory(core)
add_subdirectory(as)
add_subdirectory(rce)
add_subdirectory(af)
add_subdirectory(ssl)
add_subdirectory(gme)
add_subdirectory(chdfs)
add_subdirectory(faceid)
add_subdirectory(aa)
add_subdirectory(ssm)
add_subdirectory(cbs)
add_subdirectory(cpdp)
add_subdirectory(cloudhsm)
add_subdirectory(sqlserver)
add_subdirectory(bmvpc)
add_subdirectory(ecc)
add_subdirectory(asw)
add_subdirectory(domain)
add_subdirectory(lp)
add_subdirectory(ckafka)
add_subdirectory(cme)
add_subdirectory(tci)
add_subdirectory(dlc)
add_subdirectory(cmq)
add_subdirectory(tag)
add_subdirectory(ds)
add_subdirectory(taf)
add_subdirectory(msp)
add_subdirectory(cms)
add_subdirectory(bm)
add_subdirectory(trtc)
add_subdirectory(smpn)
add_subdirectory(facefusion)
add_subdirectory(gpm)
add_subdirectory(tcr)
add_subdirectory(cfs)
add_subdirectory(fmu)
add_subdirectory(scf)
add_subdirectory(batch)
add_subdirectory(gaap)
add_subdirectory(dts)
add_subdirectory(ecm)
add_subdirectory(bizlive)
add_subdirectory(ticm)
add_subdirectory(bmlb)
add_subdirectory(dbbrain)
add_subdirectory(emr)
add_subdirectory(captcha)
add_subdirectory(bri)
add_subdirectory(soe)
add_subdirectory(mongodb)
add_subdirectory(cam)
add_subdirectory(tms)
add_subdirectory(npp)
add_subdirectory(wss)
add_subdirectory(ims)
add_subdirectory(ssa)
add_subdirectory(bda)
add_subdirectory(ecdn)
add_subdirectory(iir)
add_subdirectory(iai)
add_subdirectory(dc)
add_subdirectory(tbp)
add_subdirectory(cwp)
add_subdirectory(cii)
add_subdirectory(hcm)
add_subdirectory(yunsou)
add_subdirectory(tav)
add_subdirectory(es)
add_subdirectory(ame)
add_subdirectory(tiems)
add_subdirectory(nlp)
add_subdirectory(tdmq)
add_subdirectory(vpc)
add_subdirectory(gs)
add_subdirectory(sslpod)
add_subdirectory(postgres)
add_subdirectory(mariadb)
add_subdirectory(tione)
add_subdirectory(monitor)
add_subdirectory(tmt)
add_subdirectory(cvm)
add_subdirectory(tkgdq)
add_subdirectory(rkp)
add_subdirectory(iotvideo)
add_subdirectory(sts)
add_subdirectory(aai)
add_subdirectory(bmeip)
add_subdirectory(ses)
add_subdirectory(ic)
add_subdirectory(vod)
add_subdirectory(tke)
add_subdirectory(tics)
add_subdirectory(clb)
add_subdirectory(tts)
add_subdirectory(dayu)
add_subdirectory(iottid)
add_subdirectory(billing)
add_subdirectory(mgobe)
add_subdirectory(apigateway)
add_subdirectory(ie)
add_subdirectory(tsw)
add_subdirectory(ft)
add_subdirectory(cat)
add_subdirectory(solar)
add_subdirectory(cloudaudit)
add_subdirectory(gse)
add_subdirectory(ocr)
add_subdirectory(organization)
add_subdirectory(sms)
add_subdirectory(memcached)
add_subdirectory(afc)
add_subdirectory(tia)
add_subdirectory(zj)
add_subdirectory(iotcloud)
add_subdirectory(oceanus)
add_subdirectory(tat)
add_subdirectory(kms)
add_subdirectory(drm)
add_subdirectory(mvj)
add_subdirectory(tcex)
add_subdirectory(live)
add_subdirectory(vm)
add_subdirectory(asr)
add_subdirectory(cim)
add_subdirectory(ba)
add_subdirectory(cdn)
add_subdirectory(partners)
add_subdirectory(youmall)
add_subdirectory(iot)
add_subdirectory(iotexplorer)
add_subdirectory(ape)
add_subdirectory(tsf)
add_subdirectory(cdb)
add_subdirectory(cynosdb)
add_subdirectory(ms)
add_subdirectory(iotvideoindustry)
add_subdirectory(tiia)
add_subdirectory(ump)
add_subdirectory(ccc)
add_subdirectory(tcb)
add_subdirectory(apcas)
add_subdirectory(yunjing)
add_subdirectory(cis)
add_subdirectory(cfw)
add_subdirectory(redis)
add_subdirectory(cds)
add_subdirectory(rp)
add_subdirectory(waf)
add_subdirectory(lighthouse)
add_subdirectory(dcdb)
add_subdirectory(tbaas)
add_subdirectory(ams)
add_subdirectory(tic)
add_subdirectory(mps)
add_subdirectory(cws)
add_subdirectory(vms)
add_subdirectory(tbm)
add_subdirectory(tiw)
add_subdirectory(habo)
add_subdirectory(tcaplusdb)

